Pathological Interaction of Locks with Transactional Memory
نویسندگان
چکیده
Transactional memory (TM) promises to simplify multithreaded programming. Transactions provide mutual exclusion without the possibility of deadlock and the need to assign locks to data structures. To date, most investigations of transactional memory have looked at purely transactional systems that do not interact with legacy code using locks. Unfortunately, the reality of software engineering is that such interaction is likely. We investigate the interaction of transactional memory implementations and lock-based code. We identify and discuss five pathologies that arise with different systems when a lock is accessed both within and outside a transaction: Blocking, Deadlock, Livelock, Early Release, and Invisible Locking. To address these pathologies we designed and implemented transaction-safe locks (TxLocks) by modifying the existing lock implementation of the OpenSolaris C Library and extending the conflict resolution policy of a hardware transactional memory system.
منابع مشابه
Synchronizing Parallel Tasks Using STM
The past few years have marked the start of a historic transition from sequential to parallel computation. The necessity to write parallel programs is increasing as systems are getting more complex while processor speed increases are slowing down. Current parallel programming uses low-level programming constructs like threads and explicit synchronization using locks to coordinate thread executi...
متن کاملLock-Free Readers/Writers
The past few years have marked the start of a historic transition from sequential to parallel computation.The necessity to write parallel programs is increasing as systems are getting more complex while processor speed increases are slowing down. Current parallel programming uses low-level programming constructs like threads and explicit synchronization using locks to coordinate thread executio...
متن کاملA Survey Paper on Transactional Memory
The necessity to write concurrent programs is increasing as systems are getting more complex while processor speed increases are slowing down. The current popular solution for parallel programming is to use locks but they contain many known drawbacks that make them a suboptimal solution. Transactional memory is a recent alternative to locks that is gaining a lot of attention in the research com...
متن کاملFrom Locks to Transactional Memory: Lessons Learned from Porting a Real-world Application
Lock-based constructs such as mutual exclusion and condition variables are commonly employed for concurrency control, especially when preemptive multithreading with shared memory is used. However, locks have received a fair amount of criticism, in particular due to their complexity. Transactional memory has been proposed as a simpler alternative to lock-based synchronization, but it is still no...
متن کاملTransactional Memory Should Be an Implementation Technique, Not a Programming Interface
© Transactional Memory Should Be an Implementation Technique, Not a Programming Interface Hans-J. Boehm HP Laboratories HPL-2009-45 transactional memory, locks Transactional memory is often advocated as an easier-to-use replacement or locks that avoids any possibility of deadlock. Recently, as more care has been exercised in precisely specifying its semantics, a number of researchers have obser...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2008